package com.jy.adscm.declarationForm.service;

import com.jy.adscm.bean.system.JyUser;
import com.jy.adscm.declarationForm.bean.JyDeclarationForm;
import com.baomidou.mybatisplus.service.IService;
import com.jy.adscm.exception.AdscmSystemException;
import com.jy.adscm.support.SimpleCoreResponse;

import java.util.List;

/**
 * <p>
 * 经销商报单表 服务类
 * </p>
 *
 * @author yyy
 * @since 2019-01-21
 */
public interface JyDeclarationFormService extends IService<JyDeclarationForm> {


    /**
     * 增加报单申请
     * @param user
     * @param jyDeclarationForm
     */
    void addDeclarationForm(JyUser user,JyDeclarationForm jyDeclarationForm) throws AdscmSystemException;

    /**
     * 查询某个经销商的报单申请
     * @param dealerId
     * @param isYix ： 是否查询意向队列，如果是 (1) ，就只查询意向队列，如果不是(0)，则查询：待审核、审核通过、审核不通过的，如果是（2）就只查审核通过的，  如果是其他的，则所有都查
     */
    List<JyDeclarationForm> queryApplyByDealerId(List<Integer> dealerId,int isYix) throws AdscmSystemException ;
    /**
     * 查询某个医院的所有报单详情
     * @param hospitalId
     */
    List<JyDeclarationForm> queryHospitalDeclarationFormDetail(Long hospitalId) throws AdscmSystemException ;

    /**
     * 经销商查询某一个报单申请的详情
     * @param declarationFormId 报单ID
     * @return
     */
    JyDeclarationForm queryDealerApplyFormDetail(Long declarationFormId) throws AdscmSystemException ;

    /**
     * 查询报单状态
     * @param jyDeclarationForm
     * @return
     */
    SimpleCoreResponse queryApplyFormStatus(JyDeclarationForm jyDeclarationForm) throws AdscmSystemException ;

    /**
     * 查询所有报单列表
     * 如果指定用户具有角色：ROLE_dealer_declaration_admin  ，那么他属于报单顶级管理员，可以查看所有的报单记录汇总
     * 如果没有这个角色，并且是厂商的话，只能看到这个用户所管理的经销商的报单记录
     * @return
     */
    List<JyDeclarationForm> selectAll(JyUser user)throws AdscmSystemException ;
}
